﻿using BonjourQuotation.UI.Models.BaseModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Web;
using System.Web.WebPages.Html;

namespace BonjourQuotation.UI.Models.PartialModel
{
    public class OperationBusGridViewModel : UserAllPermissionsViewModel
    {
        public double BusLeftScrollPossition { get; set; }
        public double BusTopScrollPossition { get; set; }
        public bool IsBusCanPrev { get; set; }
        public bool IsBusCanNext { get; set; }
        public string BusCount { get; set; }
        public int BusCountCheck { get; set; }
        public List<OperationBusGridRowViewModel> Rows { get; set; }
        public List<OperationBusGridSaveRowViewModel> SaveRows { get; set; }
        public List<OperationBusVendorInfoViewModel> VendorInfo { get; set; }
        public List<OperationBusGuideInfoViewModel> GuideInfo { get; set; }
        public int BusPageNumber { get; set; }
        // Group Code filter
        public List<CheckBoxControlViewModel> BusFilterGroupCode { get; set; }
        public List<CheckBoxControlViewModel> BusFilterSelGroupCode { get; set; }
        public List<string> SelectedBusFilterGroupCode { set; get; }
        // Group Name filter
        public List<CheckBoxControlViewModel> BusFilterGroupName { get; set; }
        public List<CheckBoxControlViewModel> BusFilterSelGroupName { get; set; }
        public List<string> SelectedBusFilterGroupName { set; get; }
        // Customer filter
        public List<CheckBoxControlViewModel> BusFilterCustomerCode { get; set; }
        public List<CheckBoxControlViewModel> BusFilterSelCustomerCode { get; set; }
        public List<string> SelectedBusFilterCustomerCode { set; get; }
        // Status filter
        public List<CheckBoxControlViewModel> BusFilterStatus { get; set; }
        public List<CheckBoxControlViewModel> BusFilterSelStatus { get; set; }
        public List<string> SelectedBusFilterStatus { set; get; }
        // Vendor Name filter
        public List<CheckBoxControlViewModel> BusFilterVendorName { get; set; }
        public List<CheckBoxControlViewModel> BusFilterSelVendorName { get; set; }
        public List<string> SelectedBusFilterVendorName { set; get; }
        // Start City filter
        public List<CheckBoxControlViewModel> BusFilterStartCity { get; set; }
        public List<CheckBoxControlViewModel> BusFilterSelStartCity { get; set; }
        public List<string> SelectedBusFilterStartCity { set; get; }
        // End City filter
        public List<CheckBoxControlViewModel> BusFilterEndCity { get; set; }
        public List<CheckBoxControlViewModel> BusFilterSelEndCity { get; set; }
        public List<string> SelectedBusFilterEndCity { set; get; }
        // Filter Remove
        public bool IsRemoveBusFilterDivShow { set; get; }
        public bool IsRemoveBusCustomerCodeFilter { set; get; }
        public bool IsRemoveBusGroupCodeFilter { set; get; }
        public bool IsRemoveBusGroupNameFilter { set; get; }
        public bool IsRemoveBusVendorNameFilter { set; get; }
        public bool IsRemoveBusStartCityFilter { set; get; }
        public bool IsRemoveBusEndCityFilter { set; get; }
        public bool IsRemoveBusStatusFilter { set; get; }
        // Hide Show
        public bool ViewBusIsInvoice { get; set; }
        public bool ViewBusInvoicePrice { get; set; }
        public bool ViewBusGroupCode { set; get; }
        public bool ViewBusGroupName { set; get; }
        public bool ViewBusConfHtml { set; get; }
        public bool ViewBusCustomer { set; get; }
        public bool ViewBusPax { set; get; }
        public bool ViewBusEstNumberofPerson { set; get; }
        public bool ViewBusEmployee { set; get; }
        public bool ViewBusCost { set; get; }
        public bool ViewBusBusDifference { set; get; }
        public bool ViewBusGuideDifference { set; get; }
        public bool ViewBusGuideMiscDifference { set; get; }
        public bool ViewBusGuideStepOnDifference { set; get; }
        public bool ViewBusBusTotalPaid { set; get; }
        public bool ViewBusGuideTotalPaid { set; get; }
        public bool ViewBusStart { set; get; }
        public bool ViewBusTime { set; get; }
        public bool ViewBusDateOfService { set; get; }
        public bool ViewBusStartCity { set; get; }
        public bool ViewBusEndCity { set; get; }
        public bool ViewBusBusCount { set; get; }
        public bool ViewBusBusSize { set; get; }
        public bool ViewBusServiceCode { set; get; }
        public bool ViewBusServiceDetail { set; get; }
        public bool ViewBusSupplier { set; get; }
        public bool ViewBusBusCurrency { set; get; }
        public bool ViewBusQuotaBusPrice { set; get; }
        public bool ViewBusQuotaSupplier { set; get; }
        public bool ViewBusGuideCurrency { set; get; }
        public bool ViewBusQuotaGuideSalary { set; get; }
        public bool ViewBusQuotaGuideMisc { set; get; }
        public bool ViewBusQuotaGuideStepOn { set; get; }
        public bool ViewBusQuotaGuide { set; get; }
        public bool ViewBusAirport { set; get; }
        public bool ViewBusStatus { set; get; }
        public bool ViewBusConfirmation { set; get; }
        public bool ViewBusOperations { set; get; }
        public bool ViewBusGuide { set; get; }
        public bool ViewBusGuideSalary { set; get; }
        public bool ViewBusGuideMisc { set; get; }
        public bool ViewBusGuideStepOn { set; get; }
        public bool ViewBusGuideSalaryPaid { set; get; }
        public bool ViewBusGuideAdditionalCharges { set; get; }
        public bool ViewBusGuideSalaryInvoicePaid { set; get; }
        public bool ViewBusBusTotalCost { set; get; }
        public bool ViewBusGuideTotalCost { set; get; }
        public bool ViewBusPrice { set; get; }
        public bool ViewBusFirstPayment { set; get; }
        public bool ViewBusSelectedFirstPaymentMethod { set; get; }
        public bool ViewBusDateFirstPayment { set; get; }
        public bool ViewBusSecondPayment { set; get; }
        public bool ViewBusSelectedSecondPaymentMethod { set; get; }
        public bool ViewBusDateSecondPayment { set; get; }
        public bool ViewBusThirdPayment { set; get; }
        public bool ViewBusSelectedThirdPaymentMethod { set; get; }
        public bool ViewBusDateThirdPayment { set; get; }
        public bool ViewBusGuideFirstPayment { set; get; }
        public bool ViewBusGuideSelectedFirstPaymentMethod { set; get; }
        public bool ViewBusGuideDateFirstPayment { set; get; }
        public bool ViewBusGuideSecondPayment { set; get; }
        public bool ViewBusGuideSelectedSecondPaymentMethod { set; get; }
        public bool ViewBusGuideDateSecondPayment { set; get; }
        public bool ViewBusGuideThirdPayment { set; get; }
        public bool ViewBusGuideSelectedThirdPaymentMethod { set; get; }
        public bool ViewBusGuideDateThirdPayment { set; get; }
        public bool ViewBusNotes { set; get; }

        // for filtering, update, hide show,
        public bool IsBusFilter { set; get; }
        public bool IsBusView { set; get; }
        public bool IsBusUpdate { set; get; }
        public bool IsBusSearch { set; get; }
        // grid drop down values
        public List<OperationBusDetailInfoViewModel> Details { get; set; }
        public List<OperationBusServiceInfoViewModel> Services { get; set; }
        public List<SelectListItem> Employee { get; set; }
        public List<SelectListItem> VendorStatus { get; set; }
        public List<SelectListItem> PaymentMethod { get; set; }
        // Bus Search
        [DisplayName("Start Date From:")]
        public string BusSearchStartFromDate { get; set; }
        [DisplayName("Start Date To:")]
        public string BusSearchStartToDate { get; set; }
        [DisplayName("Start City:")]
        public string BusSearchStartCity { get; set; }
        [DisplayName("End City:")]
        public string BusSearchEndCity { get; set; }
        [DisplayName("Customer:")]
        public string BusSearchCustomer { get; set; }
        [DisplayName("Group Name:")]
        public string BusSearchGroupName { get; set; }
        [DisplayName("Group Code:")]
        public string BusSearchGroupCode { get; set; }
        [DisplayName("Supplier:")]
        public string BusSearchVendorName { get; set; }
        [DisplayName("Guide:")]
        public string BusSearchGuideName { get; set; }
        [DisplayName("Employee:")]
        public string BusSearchEmployee { get; set; }
        public int BusSearchEmployeeID { get; set; }
        // Bus Totals
        [DisplayName("Total Bus Diff:")]
        public string BusDifferenceSum { get; set; }
        [DisplayName("Total Guide Diff:")]
        public string GuideDifferenceSum { get; set; }
        [DisplayName("Total Bus Paid:")]
        public string BusTotalPaidSum { get; set; }
        [DisplayName("Total Guide Paid:")]
        public string GuideTotalPaidSum { get; set; }
        [DisplayName("Total Bus Cost:")]
        public string BusTotalCostAmtSum { get; set; }
        [DisplayName("Total Guide Cost:")]
        public string GuideTotalCostAmtSum { get; set; }
        [DisplayName("Total Guide Misc Diff:")]
        public string GuideTotalMiscDiffSum { get; set; }
        [DisplayName("Total Guide StepOn:")]
        public string GuideTotalStepOnSum { get; set; }
        [DisplayName("Grp Profit:")]
        public string BusGroupProfit { get; set; }
        [DisplayName("Total Invoice:")]
        public string BusTotInvoice { get; set; }
        [DisplayName("Profit %:")]
        public string BusProfitPers { get; set; }
        public decimal BusTotCost { get; set; }
        public decimal BusTotCostCad { get; set; }
    }
    [Serializable]
    public class OperationBusGridRowViewModel
    {
        public string BusGroupCode { get; set; }
        public int BusGroupID { get; set; }
        public int BusVendorID { get; set; }
        public string BusNewVendorID { get; set; }
        public string BusNewGuideID { get; set; }
        public int BusGuideID { get; set; }
        public string BusConfHtml { get; set; }
        public string BusGroupContractHtml { get; set; }
        public string BusQuotaBusCurr { get; set; }
        public string BusQuotaBusPrice { get; set; }
        public string BusQuotaVendorID { get; set; }
        public string BusQuotaSupplier { get; set; }
        public string BusQuotaGuideCurr { get; set; }
        public string BusQuotaGuideID { get; set; }
        public string BusQuotaGuide { get; set; }
        public string BusQuotaGuideSalary { get; set; }
        public string BusQuotaGuideMisc { get; set; }
        public string BusQuotaGuideStepOn { get; set; }
        public string BusGroupName { get; set; }
        public string BusCustomer { get; set; }
        public string BusEstNoOfPerson { get; set; }
        public string BusPax { get; set; }
        public bool BusIsInvoice { get; set; }
        public string BusInvoicePrice { get; set; }
        public string BusCost { get; set; }
        public string BusBusDifference { get; set; }
        public string BusGuideDifference { get; set; }
        public string BusGuideMiscDifference { get; set; }
        public string BusGuideStepOnDifference { get; set; }
        public string BusBusTotalPaid { get; set; }
        public string BusGuideTotalPaid { get; set; }
        public string BusStart { get; set; }
        public string BusTime { get; set; }
        public string BusNewTime { get; set; }
        public string BusGuideStart { get; set; }
        public string BusDateOfService { get; set; }
        public string BusStartCity { get; set; }
        public string BusEndCity { get; set; }
        public string BusBusCount { get; set; }
        public string BusBusSize { get; set; }
        public string BusServiceCode { get; set; }
        public string BusSelectedDetail { get; set; }
        public string BusSelectedService { get; set; }
        public string BusSelectedEmployee { get; set; }
        public string BusSupplier { get; set; }
        public string BusAirport { get; set; }
        public string BusStatus { get; set; }
        public string BusConfirmation { get; set; }
        public string BusOperations { get; set; }
        public string BusGuide { get; set; }
        public string BusGuideSalary { get; set; }
        public string BusGuideMisc { get; set; }
        public string BusGuideStepOn { get; set; }
        public string BusGuideSalaryPaid { get; set; }
        public string BusGuideAdditionalCharges { get; set; }
        public string BusGuideSalaryInvoicePaid { get; set; }
        public string BusBusTotalCost { get; set; }
        public string BusGuideTotalCost { get; set; }
        public string BusPrice { get; set; }
        public string BusPayMeth1FormHtml { get; set; }
        public string BusPayMeth2FormHtml { get; set; }
        public string BusPayMeth3FormHtml { get; set; }
        public string GuidePayMeth1FormHtml { get; set; }
        public string GuidePayMeth2FormHtml { get; set; }
        public string GuidePayMeth3FormHtml { get; set; }
        public string BusFirstPayment { get; set; }
        public string BusSelectedFirstPaymentMethod { get; set; }
        public string BusDateFirstPayment { get; set; }
        public string BusSecondPayment { get; set; }
        public string BusSelectedSecondPaymentMethod { get; set; }
        public string BusDateSecondPayment { get; set; }
        public string BusThirdPayment { get; set; }
        public string BusSelectedThirdPaymentMethod { get; set; }
        public string BusDateThirdPayment { get; set; }
        public string BusGuideFirstPayment { get; set; }
        public string BusGuideSelectedFirstPaymentMethod { get; set; }
        public string BusGuideDateFirstPayment { get; set; }
        public string BusGuideSecondPayment { get; set; }
        public string BusGuideSelectedSecondPaymentMethod { get; set; }
        public string BusGuideDateSecondPayment { get; set; }
        public string BusGuideThirdPayment { get; set; }
        public string BusGuideSelectedThirdPaymentMethod { get; set; }
        public string BusGuideDateThirdPayment { get; set; }
        public string BusNotes { get; set; }
         
    }
    public class OperationBusGridSaveRowViewModel
    {
        public int GroupID { get; set; }
        public int VendorID { get; set; }
        public int? GuideID { get; set; }
        public string NewVendorID { get; set; }
        public string NewGuideID { get; set; }
        public int? Pax { get; set; }
        public int BusSelectedVendorStatus { get; set; }
        public bool IsInvoice { get; set; }
        public string InvoicePrice { get; set; }
        public string StartDate { get; set; }
        public string NewStartDate { get; set; }
        public string Time { get; set; }
        public string NewTime { get; set; }
        public string DateOfService { get; set; }
        public int SelectedDetailID { get; set; }
        public int SelectedServiceID { get; set; }
        public int SelectedEmployeeID { get; set; }
        public string StartCity { get; set; }
        public string EndCity { get; set; }
        public string Airport { get; set; }
        public string BusSize { get; set; }
        public string BusPrice { get; set; }
        public string BusCount { get; set; }
        public string BusQuotaCurr { get; set; }
        public string BusNotes { get; set; }
        public string GuideSalary { get; set; }
        public string GuideMisc { get; set; }
        public string GuideStepOn { get; set; }
        public string GuideSalaryPaid { get; set; }
        public string GuideAddCharge { get; set; }
        public string GuidePaidAmt { get; set; }
        public string BusFirstPayment { get; set; }
        public string BusSelectedFirstPaymentMethod { get; set; }
        public string BusDateFirstPayment { get; set; }
        public string BusSecondPayment { get; set; }
        public string BusSelectedSecondPaymentMethod { get; set; }
        public string BusDateSecondPayment { get; set; }
        public string BusThirdPayment { get; set; }
        public string BusSelectedThirdPaymentMethod { get; set; }
        public string BusDateThirdPayment { get; set; }
        public string BusGuideFirstPayment { get; set; }
        public string BusGuideSelectedFirstPaymentMethod { get; set; }
        public string BusGuideDateFirstPayment { get; set; }
        public string BusGuideSecondPayment { get; set; }
        public string BusGuideSelectedSecondPaymentMethod { get; set; }
        public string BusGuideDateSecondPayment { get; set; }
        public string BusGuideThirdPayment { get; set; }
        public string BusGuideSelectedThirdPaymentMethod { get; set; }
        public string BusGuideDateThirdPayment { get; set; }
    }
    public class OperationBusVendorInfoViewModel
    {
        public int VendorID { get; set; }
        public string VendorName { get; set; }
        public string VendorCity { get; set; }
        public string VendorAddress { get; set; }
        public string VendorPhone { get; set; }
        public string VendorType { get; set; }
        public string VendorEmail { get; set; }
        public string VendorContactPerson { get; set; }
        public bool VendorIsFind { get; set; }
    }
    public class OperationBusGuideInfoViewModel
    {
        public int GuideID { get; set; }
        public string GuideName { get; set; }
    }
    public class OperationBusDetailInfoViewModel
    {
        public int DetailID { get; set; }
        public int ServiceTypeID { get; set; }
        public string DetailCode { get; set; }
    }
    public class OperationBusServiceInfoViewModel
    {
        public int ServiceID { get; set; }
        public int ServiceTypeID { get; set; }
        public string ServiceCode { get; set; }
    }
   
}